package com.relytosoft.mizar.media.alarm.services.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.relytosoft.dubhe.common.core.base.page.PageQuery;
import com.relytosoft.mizar.media.alarm.api.entity.Alarm;
import com.relytosoft.mizar.media.alarm.api.pojo.dto.AyControlAlarmDto;
import com.relytosoft.mizar.media.alarm.api.pojo.query.AlarmQuery;
import com.relytosoft.mizar.media.alarm.api.pojo.vo.AlarmListVo;
import com.relytosoft.mizar.media.alarm.api.pojo.vo.AlarmTypeVo;
import com.relytosoft.mizar.media.alarm.api.pojo.vo.AlarmVo;
import com.relytosoft.mizar.media.alarm.api.pojo.vo.TaskSelectVo;

import java.util.List;


/**
 * @author wss
 * @version 1.0
 * @date 2022/5/24 11:53
 */
public interface AlarmService extends IService<Alarm> {

    /**
     * 接收上报异常报警
     *
     * @param ayControlAlarmDto
     * @return
     */
    Boolean alarmAccept(AyControlAlarmDto ayControlAlarmDto);

    /**
     * 分页查询报警信息
     *
     * @param pageQuery
     * @param alarmQuery
     * @return
     */
    IPage<AlarmListVo> selectPageAlarmList(PageQuery pageQuery, AlarmQuery alarmQuery);

    /**
     * 获取未删除的布控任务列表用于检索报警时选择任务
     * @return
     */
    List<TaskSelectVo> selectControlTaskList(Integer dispositionType);
    /**
     * 查询告警信息详情
     *
     * @param id 告警id
     * @return 告警信息详情
     */
    AlarmVo selectAlarmDetail(Long id);

    /**
     * 根据告警类别获取告警类型
     * @param alarmCategory
     * @return
     */
    List<AlarmTypeVo> selectAlarmTypeList(Integer alarmCategory);

}
